package com.shujia.wyh.day25;

/*
        某电影院目前正在上映贺岁大片，共有100张票，而它有3个售票窗口售票，请设计一个程序模拟该电影院售票。
        两种方式实现
            2、实现Runnable接口

        为了模拟更加现实的售票场景，我们加入延迟操作
        但是呢，加入延迟之后，产生了两个问题：
            1、相同的票我们卖了很多次
                CPU的执行操作是原子性，小小的CPU时间片足矣运行很多次
            2、出了卖第0张票和负数的票。
                这个是由于线程的执行具有随机性和延迟性导致的，因为我们加入了sleep休眠方法，让线程变成阻塞状态，让其他线程执行

 */
public class SellTicketDemo3 {
    public static void main(String[] args) {
        //创建自定义类对象
        TicketWindow3 ticketWindow3 = new TicketWindow3();

        //创建3个线程对象，模拟3个窗口进行卖票
        Thread window1 = new Thread(ticketWindow3, "窗口1");
        Thread window2 = new Thread(ticketWindow3, "窗口2");
        Thread window3 = new Thread(ticketWindow3, "窗口3");

        //启动线程
        window1.start();
        window2.start();
        window3.start();
    }
}
